#ifndef _ACTIONS_H_
#define _ACTIONS_H_
#include <iostream>
#include <cassert>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include "../lib/Joueur.hpp"
#include "../lib/Unite.hpp"
#include "../lib/Ville.hpp"
#include "../lib/Coordonnes.hpp"
#include "../lib/Partie.hpp"


/** Un colon cree une ville a son emplacement et disparait
*/
void Colon_Cree_Ville (Joueur * J, Unite * U, Partie * P);

/** La ville d'un joueur cree un colon sous elle
*/
void Ville_Cree_Colon_Bas (Joueur * J, Ville * V, Partie * P);

/** La ville d'un joueur cree un guerrier sous elle
*/
void Ville_Cree_Guerrier_Bas (Joueur * J, Ville * V, Partie * P);

/** La ville d'un joueur cree un colon au-dessus d'elle
*/
void Ville_Cree_Colon_Haut (Joueur * J, Ville * V, Partie * P);

/** La ville d'un joueur cree un guerrier au-dessus d'elle
*/
void Ville_Cree_Guerrier_Haut (Joueur * J, Ville * V, Partie * P);



/** L'unite du joueur humain attaque une unite ou une ville IA situe au dessus de lui
*/
void Attaquer_Haut(Joueur * J, Unite * A, Partie * P);

/** L'unite du joueur humain attaque une unite ou une ville IA situe au dessous de lui
*/
void Attaquer_Bas(Joueur * J, Unite * A, Partie * P);

/** L'unite du joueur humain attaque une unite ou une ville IA situe a gauche de lui
*/
void Attaquer_Gauche(Joueur * J, Unite * A, Partie * P);

/** L'unite du joueur humain attaque une unite ou une ville IA situe a droite de lui
*/
void Attaquer_Droite(Joueur * J, Unite * A, Partie * P);



/** L'unite du joueur attaque une unite ou une ville humaine situe au dessus de lui
*/
void Attaquer_Haut_IA(Joueur * J, Unite * A, Partie * P);

/** L'unite du joueur attaque une unite ou une ville humaine situe au dessous de lui
*/
void Attaquer_Bas_IA(Joueur * J, Unite * A, Partie * P);

/** L'unite du joueur attaque une unite ou une ville humaine situe a gauche de lui
*/
void Attaquer_Gauche_IA(Joueur * J, Unite * A, Partie * P);

/** L'unite du joueur attaque une unite ou une ville humaine situe a droite de lui
*/
void Attaquer_Droite_IA(Joueur * J, Unite * A, Partie * P);


#endif
